Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

роботи

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут післядипломної освіти
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Інститут післядипломної освіти ЗВІТ Про виконання лабораторної роботи №2 «Перевизначення операторів. Використання дружніх функцій» з дисципліни «Об’єктно-орієнтоване програмування» Тема роботи: Перевизначення операторів. Використання дружніх функцій. 1. Завдання Написати програму алгоритмічною мовою С++ згідно із завданням, отриманим відвикладача за табл. 1. Реалізувати заданий класовий тип із заданими методами, використовуючи механізм перевантаження функцій та операцій, а також значення параметрів за замовчуванням. Написати фрагмент програми з використанням класового типу та заданих методів. Варіант 5. Класовий тип: Динамічний двомірний масив **p Методи класу: Конструктор повинен дозволяти створювати об'єкти з ініціалізацією і без неї. Визначити конструктор копій. Перевантажити операції -, =, виводу <<, вводу >> для об'єктів класу, а також дружні операції <тип>*, +=. 2. Блок-схеми алгоритмів функцій програми  Рис. 2.1. Перезавантаження оператора «=» Рис. 2.2. Унарний «-» Блок-схема перезавантаження функції віднімання двох матриць const Matrix operator-(const Matrix& left, const Matrix& right), зображена на рис. 2.3. На рис. 2.4. зображена функція множення двох матриць const Matrix operator*(const Matrix& left, const Matrix& right).  Рис. 2.3. Бінарний "-" (дві матриці) Рис. 2.4. Множення елементів двох матриць Блок-схема перезавантаження функції віднімання матриці та числа const Matrix operator-(const Matrix& left, int right), зображена на рис. 2.5. На рис. 2.6. зображена функція множення матриці на число const Matrix operator*(const Matrix& left, int right).  Рис. 2.5. Бінарний "-" (матриця - число) Рис. 2.6. Множення матриці на число Блок-схема перезавантаження оператора «+=» для двох матриць Matrix& operator+=(Matrix& left, const Matrix& right), зображена на рис. 2.7. На рис. 2.8. зображена функція перезавантаження оператора «+=» для матриці та числа Matrix& operator+=(Matrix& left, int right).  Рис. 2.7. Оператор матриця += матриця Рис. 2.8. Оператор матриця += число Блок-схема перезавантаження оператора виводу матриці на екран «<<» ostream& operator<<(ostream& output, const Matrix& matr), зображена на рис. 2.9. На рис. 2.10. зображена функція перезавантаження оператора вводу матриці з клавіатури «>>» istream& operator>>(istream& input, const Matrix& matr).  Рис. 2.9. Оператор виводу матриці «<<» Рис. 2.10. Оператор вводу матриці «>>» 3. Текст програми на мові програмування С++ #include <iostream> #include <conio.h> #include <math.h> using namespace std; class Matrix { public: int* data; int size; //конструктор з ініціалізацією початкових данних //першим числом повиинно бути розмір матриці зі знаком мінус //в протилежному випадку заповнення масиву початковими значеннями //не відбудеться Matrix(int matSize, ...) { size = matSize; if(size<0) size = -size; data = new int[size*size]; if(matSize < 0) { int *p = &matSize; for(int i = 0; i < size*size; i++) { p++; *(data+i) = *(p); } } } //конструктор без параметрів //створюється масив 2*2 Matrix() { size = 2; data = new int[4]; } //конструктор копій Matrix(const Matrix &p) { size = p.size; data = new int[size*size]; int* k = p.data; for(int i = 0; i < size*size; i++) *(data+i) = *(k+i); } //деструктор ~Matrix() { delete[] data; } //перезавантаження оператора [] int* operator[](int row) { return data+row*size; } //перезавантаження оператора = Matrix& operator=(const Matrix& right) { //перевірка на самоприсвоєння if (this ==...
Антиботан аватар за замовчуванням

03.03.2014 11:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини